#include <stdio.h>

int add(int a,int b)
{
    return a + b;
}

int minus(int a, int b)
{
    return a - b;
}

int multiply(int a,int b)
{
    return a * b;
}

int divide(int a,int b)
{
    return a / b;
}

//开闭原则：尽量不要去修改原有的代码，要对代码功能进行扩展

// int caculate(int a,int b,char c)
// {
//     switch(c)
//     {
//         case '+':return add(a,b);
//         case '-':return minus(a,b);
//         case '*':return multiply(a,b);
//         case '/':return divide(a,b);
//         default:
//             return -1;
//     }
// }
// int main()
// {
//     printf("%d\n",caculate(2,3,'+'));
//     return 0;


//回调函数(callback)：将函数指针传给另一个函数作为参数
int caculate(int a,int b,int (*funcPtr)(int,int))
{
    return funcPtr(a,b);
}
int main()
{
    printf("%d\n",caculate(2,3,minus));
    return 0;
}